<script src="./movies.js"></script>
<script>
  // 全局变量名movies
  let i = 0;
  let k = 0;
  // 1.找出时间（runTime，单位分钟）最长的电影。
  console.groupCollapsed("1.找出时间（runTime，单位分钟）最长的电影。");
  console.log(
    [...movies].sort((a, b) => {
      i++;
      return a.runTime - b.runTime;
    })[movies.length - 1],

    movies.reduce((max, movie) => {
      k++;
      if (max === null) return movie;
      if (+movie.runTime > +max.runTime) return movie;
      return max;
    }, null)
  );
  console.log(i, k);
  console.groupEnd();

  // 2. 统计所有演员演出过多少电影（例如返回：{周星驰: [], 刘德华: [] ...}
  console.groupCollapsed("2. 统计所有演员演出过多少电影");
  console.log(
    movies.reduce((r, movie) => {
      movie.actors.forEach((a) => {
        if (a in r) {
          r[a].push(movie.title);
        } else {
          r[a] = [movie.title];
        }
      });
      return r;
    }, {})
  );
  console.groupEnd();

  // 3. 找出制作电影最多的10个国家地区（例如返回 [{nation: '国家1', count: 10}, {nation: '国家2', count: 6}...]
  console.groupCollapsed("3. 找出制作电影最多的10个国家地区");
  console.log(
    movies
      .reduce((r, movie) => {
        movie.nations.forEach((n) => {
          const f = r.find((item) => item.nation === n);
          if (f) {
            f.count += 1;
          } else {
            r.push({ nation: n, count: 1 });
          }
        });
        return r;
      }, [])
      .sort((a, b) => b.count - a.count)
      .slice(0, 10)
  );
  console.groupEnd();

  // 4. 列表所有演员，并将统计其参演的电影平均分，并倒排序（例如返回 [{name: '演员1'， rating: 9.2}, {name: '演员2'， rating: 9.2}]）
  console.groupCollapsed(
    "4. 列表所有演员，并将统计其参演的电影平均分，并倒排序"
  );
  console.log();
  console.groupEnd();
</script>
